package com.bjsxt;

import java.util.Scanner;

/**数据校验类*/
public class TelNoteRegex01 {
    //对菜单项的检验
    //要求：只有一位
    public int menuItemValidate(int min,int max){
        String regex = "[1-9]{1}";
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入正确数字，最小的是："+min+"最大是："+max);
            String input = scanner.nextLine();
            if(input.matches(regex)){
                int menuNum = Integer.parseInt(input);
                if(menuNum>=min && menuNum<=max){
                    return menuNum;
                }else {
                    System.out.println("您输入的菜单项不符，请重新输入");
                }
            }else {
                System.out.println("输入数字错误，请检查");
            }
        }
    }
    //对用户输入姓名的验证
    //字母可心大小写 长度是1-10之间
    public String nameValidate(){
        String regex = "[a-zA-Z]{1,10}";
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入姓名，格式为：大写字母或小写字母,长度为1-10");
            String input = scanner.nextLine();
            if(input.matches(regex)){
                return input;
            }else {
                System.out.println("你当前输入的姓名有误，请重新输入");
            }
        }
    }

    //对用户输入年龄的验证
    //年龄：10-99
    public String ageValidate(){
        String regex = "[1-9]{1}\\d{1}";
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入10-99之间的年龄：");
            String input = scanner.nextLine();
            if(input.matches(regex)){
                return input;
            }else {
                System.out.println("您输入用户的年龄不正确，请重新输入");
            }
        }
    }
    //对用户输入性别的验证
    //性别的输入要求：男（m或M） 女（f或 F）
    public String sexValidate(){
        String regex = "[m|M|f|F]{1}";
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("输入性别：男（m或M） 女（f或F）");
            String input = scanner.nextLine();
            if(input.matches(regex)){
                return input;
            }else {
                System.out.println("输入性别格式有误，请重新输入");
            }
        }
    }
    //对用户输入电话号码的验证
    //电话号码：允许带有区号的座机号，允许手机号
    public String telNumValidate(){
        String regex = "(\\d{3,4}-\\d{7,8})|([1]{1}\\d{10})";
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入电话号码：可以是座机或者手机号");
            String input = scanner.nextLine();
            if(input.matches(regex)){
                return input;
            }else {
                System.out.println("请输入正确格式的电话号码，请重新输入");
            }
        }
    }
    //对用户输入地址的验证
    //地址：字母或数字，长度1-50
    public String addressValidate(){
        String regex = "[\\w]{1,50}";
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入地址：格式为字母或数字，长度1-50");
            String input = scanner.nextLine();

            if(input.matches(regex)){
                return input;
            }else {
                System.out.println("你输入的地址格式有误，请重新输入");
            }
        }
    }

    public static void main(String[] args) {
        TelNoteRegex01 regex01 = new TelNoteRegex01();
       /* int menu = regex01.menuItemValidate(1,6);
        System.out.println(menu);*/
        String name = regex01.nameValidate();
        System.out.println(name);
    }
}
